/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 社保公积金Entity
 * @author jyangye
 * @version 2018-01-10
 */
public class ViEmpSSocial extends DataEntity<ViEmpSSocial> {
	
	private static final long serialVersionUID = 1L;
	private String employeeId;		// 员工编号

	private String name;		// 姓名
	private String code;		// 身份证号
	private Date indutyDate;		// 入职日期
	private Date outdutyDate;		// 离职日期
	private String socialNo;		// 社保号
	private Double socialBase;		// 社保缴纳基数
	private Date socialStartDate;		// 社保开办时间
	private Date socialEndDate;		// 社保停办时间
	private String socialStatus;		// 社保状态
	private String foundNo;		// 公积金号
	private Double foundBase;		// 公积金缴纳基数
	private Date foundStartDate;		// 公积金开办时间
	private Date foundEndDate;		// 公积金停办时间
	private String foundStatus;		// 公积金状态
	private String isActive;		// 状态

    private String errMsg; // 错误信息

    private Office comp;
    private Office dept;
    private Office post;
	
	public ViEmpSSocial() {
		super();
	}

	public ViEmpSSocial(String id){
		super(id);
	}


	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }
    @ExcelField(title="部门", align=2, type = 1, sort=40)
    public Office getDept() {
        return dept;
    }

    public void setDept(Office dept) {
        this.dept = dept;
    }
    @ExcelField(title="岗位", align=2, type = 1, sort=50)
    public Office getPost() {
        return post;
    }

    public void setPost(Office post) {
        this.post = post;
    }

    @Length(min=1, max=64, message="姓名长度必须介于 1 和 64 之间")
	@ExcelField(title="姓名", align=2, sort=60)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=64, message="身份证号长度必须介于 1 和 64 之间")
	@ExcelField(title="*身份证号", align=2, sort=70, isText = true)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="入职日期", align=2, sort=80)
	public Date getIndutyDate() {
		return indutyDate;
	}

	public void setIndutyDate(Date indutyDate) {
		this.indutyDate = indutyDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="离职日期", align=2, sort=90)
	public Date getOutdutyDate() {
		return outdutyDate;
	}

	public void setOutdutyDate(Date outdutyDate) {
		this.outdutyDate = outdutyDate;
	}
	
	@Length(min=1, max=32, message="社保号长度必须介于 1 和 32 之间")
	@ExcelField(title="*社保号", align=2, sort=100, isText = true)
	public String getSocialNo() {
		return socialNo;
	}

	public void setSocialNo(String socialNo) {
		this.socialNo = socialNo;
	}
	
	@ExcelField(title="*社保缴纳基数", align=2, sort=110)
	public Double getSocialBase() {
		return socialBase;
	}

	public void setSocialBase(Double socialBase) {
		this.socialBase = socialBase;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="社保开办时间", align=2, sort=120)
	public Date getSocialStartDate() {
		return socialStartDate;
	}

	public void setSocialStartDate(Date socialStartDate) {
		this.socialStartDate = socialStartDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="社保停办时间(如设置，即停办)", align=2, sort=130)
	public Date getSocialEndDate() {
		return socialEndDate;
	}

	public void setSocialEndDate(Date socialEndDate) {
		this.socialEndDate = socialEndDate;
	}

	@ExcelField(title="社保状态(仅导出)", align=2, sort=140, dictType = "emp_social_and_found_status")
	public String getSocialStatus() {
		return socialStatus;
	}

	public void setSocialStatus(String socialStatus) {
		this.socialStatus = socialStatus;
	}

	@ExcelField(title="公积金号", align=2, sort=150, isText = true)
	public String getFoundNo() {
		return foundNo;
	}

	public void setFoundNo(String foundNo) {
		this.foundNo = foundNo;
	}
	
	@ExcelField(title="公积金缴纳基数", align=2, sort=160)
	public Double getFoundBase() {
		return foundBase;
	}

	public void setFoundBase(Double foundBase) {
		this.foundBase = foundBase;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="公积金开办时间", align=2, sort=170)
	public Date getFoundStartDate() {
		return foundStartDate;
	}

	public void setFoundStartDate(Date foundStartDate) {
		this.foundStartDate = foundStartDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="公积金停办时间(如设置，即停办)", align=2, sort=180)
	public Date getFoundEndDate() {
		return foundEndDate;
	}

	public void setFoundEndDate(Date foundEndDate) {
		this.foundEndDate = foundEndDate;
	}

	@ExcelField(title="公积金状态(仅导出)", align=2, sort=190, dictType = "emp_social_and_found_status")
	public String getFoundStatus() {
		return foundStatus;
	}

	public void setFoundStatus(String foundStatus) {
		this.foundStatus = foundStatus;
	}

	public String getIsActive() {
		return isActive;
	}

	public void setIsActive(String isActive) {
		this.isActive = isActive;
	}


	@ExcelField(title = "错误信息", align = 2, type = 1, sort = 230)
    public String getErrMsg() {
        return errMsg;
    }

    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }
}